package com.meituan.sdk.model.ddzhkh.member.memberPointTotalUpdate;

import com.meituan.sdk.annotations.ApiMeta;
import java.lang.Void;
import com.google.gson.reflect.TypeToken;
import javax.validation.constraints.NotBlank;
import java.lang.reflect.Type;
import com.meituan.sdk.internal.utils.JsonUtil;
import com.google.gson.annotations.SerializedName;
import com.meituan.sdk.MeituanResponse;
import com.meituan.sdk.MeituanRequest;

/**
* 会员积分总数更新
* This file was automatically generated.
*/
@ApiMeta(
    path = "/ddzhkh/member/point/total/update",
    businessId = 59,
    apiVersion = "10014",
    apiName = "member_point_total_update",
    needAuth = true
)
public class MemberPointTotalUpdateRequest implements MeituanRequest<Void> {
    /**
    * <p data-diff-id="ct-diff-id-c73d2f88-aa87-492a-914a-e3b46ff1537d">三方会员卡号ID</p>
    */
    @NotBlank(message = "outCardNum不能为空")
    @SerializedName("outCardNum")
    private String outCardNum;
    /**
    * <p data-diff-id="ct-diff-id-ea808f2d-2e7d-4fef-b62a-964d0dc1ea12">积分账户ID，如果传值，则以传值为准</p>
    */
    @SerializedName("pointsAccountId")
    private String pointsAccountId;
    /**
    * <p data-diff-id="ct-diff-id-9f30cc7f-c673-4fae-bff3-ca34b83a23b5">积分账户三方编码，预留字段</p>
    */
    @SerializedName("pointsAccountExternalCode")
    private String pointsAccountExternalCode;
    /**
    * <p data-diff-id="ct-diff-id-138ef937-77c6-47ab-ae92-0a8cbf1da287">会员卡方案适用美团门店ID，预留字段</p>
    */
    @SerializedName("planMtShopId")
    private String planMtShopId;
    /**
    * <p data-diff-id="ct-diff-id-dbe59488-b740-48bb-8cff-b10f71ce2851">会员卡方案适用门店三方编码，预留字段</p>
    */
    @SerializedName("planShopExternalCode")
    private String planShopExternalCode;
    /**
    * <p data-diff-id="ct-diff-id-0d50fc3d-068b-4747-aad3-ccc5815ee3bc">总积分，支持小数。按double解析</p>
    */
    @NotBlank(message = "allChannelPoints不能为空")
    @SerializedName("allChannelPoints")
    private String allChannelPoints;

    public String getOutCardNum() {
        return outCardNum;
    }
    public void setOutCardNum(String outCardNum) {
        this.outCardNum = outCardNum;
    }
    public String getPointsAccountId() {
        return pointsAccountId;
    }
    public void setPointsAccountId(String pointsAccountId) {
        this.pointsAccountId = pointsAccountId;
    }
    public String getPointsAccountExternalCode() {
        return pointsAccountExternalCode;
    }
    public void setPointsAccountExternalCode(String pointsAccountExternalCode) {
        this.pointsAccountExternalCode = pointsAccountExternalCode;
    }
    public String getPlanMtShopId() {
        return planMtShopId;
    }
    public void setPlanMtShopId(String planMtShopId) {
        this.planMtShopId = planMtShopId;
    }
    public String getPlanShopExternalCode() {
        return planShopExternalCode;
    }
    public void setPlanShopExternalCode(String planShopExternalCode) {
        this.planShopExternalCode = planShopExternalCode;
    }
    public String getAllChannelPoints() {
        return allChannelPoints;
    }
    public void setAllChannelPoints(String allChannelPoints) {
        this.allChannelPoints = allChannelPoints;
    }


    @Override
    public MeituanResponse<Void> deserializeResponse(String response) {
        Type type = new TypeToken<MeituanResponse<Void>>(){}.getType();
        return JsonUtil.fromJson(response, type);
    }
    @Override
    public String serializeToJson() {
        return JsonUtil.toJson(this);
    }


    @Override
    public String toString() {
        return "MemberPointTotalUpdateRequest{" + "outCardNum=" + outCardNum + "," + "pointsAccountId=" + pointsAccountId + "," + "pointsAccountExternalCode=" + pointsAccountExternalCode + "," + "planMtShopId=" + planMtShopId + "," + "planShopExternalCode=" + planShopExternalCode + "," + "allChannelPoints=" + allChannelPoints + "}";
    }
}
